原初 MVC
はじめて提唱された Model-View-Controller
Smalltalk 環境のために考案された
『iOS アプリ設計パターン入門』 より
GUI アーキテクチャの一種
原初 MVC は、ノルウェーのオスロ大学の教授、Trygve Mikkjel Heyerdahl Reenskaug によって Smalltalk 開発環境のために考案
レイヤーの役割
Model : コマンドを受けて処理を行い、自身を更新
ユーザーのメンタルモデル
View : Model の変更を監視し、自身を更新
Controller : ユーザーの入力を受け付け、Model にコマンドを送る
登場当時はウィジェット単位でレイヤー分けをしていたが、より高次の Controller も市民権を得ている
「Objects and the Web」 にて、ウィジェット単位の Input Controller と、より高次の Application Controller が紹介されている
MVC の課題
プレゼンテーションロジックを表現できない : 男女で色を変えるとか、そういうやつ
プレゼンテーション状態を保持できない
テストが難しい
Smalltalk で模索された解決策
継承 : プレゼンテーションごとに新しいウィジェットのサブクラスを作成
Pluggable views : ジェネリックな view クラスを用意して、そこにパラメータを与えて振る舞いを変える
Presentation Model : view と model の間にプレゼンテーションロジックのための中間層を設ける
Presentation Model パターン